import {NgModule} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';

import {AppRoutingModule} from './app-routing.module';
import {AppComponent} from './app.component';
import {NZ_I18N} from 'ng-zorro-antd/i18n';
import {zh_CN} from 'ng-zorro-antd/i18n';
import {registerLocaleData} from '@angular/common';
import zh from '@angular/common/locales/zh';
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
import {HttpClientModule} from '@angular/common/http';

import {BrowserAnimationsModule} from '@angular/platform-browser/animations';

// echarts引入
import {NgxEchartsModule} from 'ngx-echarts';

// ng-zorro-antd 组件引入
import {NzIconModule} from 'ng-zorro-antd/icon';    // nz-icon图标
import {NzButtonModule} from 'ng-zorro-antd/button';  // 按钮
import {NzLayoutModule} from 'ng-zorro-antd/layout';  // layout布局
import {NzMenuModule} from 'ng-zorro-antd/menu';    // 菜单
import {NzModalModule} from 'ng-zorro-antd/modal';  // 模态对话框
import {NzSelectModule} from 'ng-zorro-antd/select'; // 下拉选择
import {NzFormModule} from 'ng-zorro-antd/form';  // 表格组件
import {NzDatePickerModule} from 'ng-zorro-antd/date-picker'; // 日期选择框
import {NzTreeModule} from 'ng-zorro-antd/tree';    // 树视图
import {NzTabsModule} from 'ng-zorro-antd/tabs';    // 标签页
import {NzTableModule} from 'ng-zorro-antd/table';  // 表格
import {NzTimePickerModule} from 'ng-zorro-antd/time-picker'; // 时间选择框
import {NzRadioModule} from 'ng-zorro-antd/radio';   // 单选框
import {NzInputModule} from 'ng-zorro-antd/input';   // 输入框
import {NzPopconfirmModule} from 'ng-zorro-antd/popconfirm';  // 气泡确认框
import {NzInputNumberModule} from 'ng-zorro-antd/input-number'; // 数字输入框
import {NzStepsModule} from 'ng-zorro-antd/steps';    // 步骤图
import {NzUploadModule} from 'ng-zorro-antd/upload';  // 文件上传
import {NzCascaderModule} from 'ng-zorro-antd/cascader'; // 级联选择框

// 自己创建的页面组件
import {SideMenuComponent} from './side-menu/side-menu.component';   // layout-侧面栏
import {OverviewComponent} from './overview/overview.component';    // 总览
import {EquipMgmtComponent} from './equip-mgmt/equip-mgmt.component'; // 设备管理
import {LeftComponent} from './overview/components/left/left.component'; // 总览-左
import {CenterComponent} from './overview/components/center/center.component'; // 总览-中间
import {RightComponent} from './overview/components/right/right.component'; // 总览-右边
import {FaultDetailComponent} from './overview/components/fault-detail/fault-detail'; // 总览-故障饼图详情
import {PowerDetailComponent} from './overview/components/power-detail/power-detail'; // 总览-故障饼图详情
import {BaseInfoComponent} from './equip-mgmt/components/base-info.component'; // 设备管理-基本信息
import {UtilizationComponent} from './equip-mgmt/components/utilization.component'; // 设备管理-利用率
import {SoftwareVersionComponent} from './equip-mgmt/components/software-version.component'; // 设备管理-软件版本信息
import {StateEvaluationComponent} from './equip-mgmt/components/state-evaluation.component'; // 设备管理-状态评估
import {LoadRateComponent} from './equip-mgmt/components/load-rate.component'; // 设备管理-设备负荷率
import {MaintenanceRecordComponent} from './equip-mgmt/components/maintenance-record.component'; // 设备管理-维护记录
import {DefectRecerodComponent} from './equip-mgmt/components/defect-handling-record-component'; // 设备管理-缺陷处理记录
import {DataHandlingComponent} from './equip-mgmt/components/data-handling.component'; // 设备管理-数据处理
import {InspectionComponent} from './inspection'; // 巡检管理-概览
import {InspectionIndexPieComponent} from './inspection/inspection-index-pie'; // 巡检管理-概览-饼图
import {InspectionIndexCCTVComponent} from './inspection/inspection-index-cctv'; // 巡检管理-概览-视频监控
import {InspectionMgmtComponent} from './inspection/inspection-mgmt'; // 巡检管理-巡检管理
import {OneKeyConfigComponent} from './inspection/one-key-configuration'; // 巡检管理-一键顺控配置
import {SubstationComponent} from './components/substation/substation.component'; // 总览-主线路图详情
import {DataMgmtComponent} from './system-mgmt/data-mgmt/data-mgmt.component'; // 系统-数据管理
import {DataDictionaryComponent, DataDictionaryItemComponent} from './system-mgmt/data-mgmt/components/data-dictionary'; // 系统-数据管理-数据字典管理
import {SystemParamMgmtComponent} from './system-mgmt/data-mgmt/components/system-param-mgmt'; // 系统-数据管理-系统参数管理
import {FaultCodeMgmtComponent} from './system-mgmt/data-mgmt/components/fault-code-mgmt'; // 系统-数据管理-故障码管理
import {LineMgmtComponent} from './system-mgmt/data-mgmt/components/line-mgmt'; // 系统-数据管理-线路管理
import {SiteMgmtComponent} from './system-mgmt/data-mgmt/components/site-mgmt'; // 系统-数据管理-站点管理
import {LogMgmtComponent} from './system-mgmt/log-mgmt/log-mgmt.component'; // 系统-日志管理
import {EquipMainDataMgmtComponent} from './equip-main-data-mgmt/equip-main-data-mgmt.component'; // 系统-数据管理-站点管理
import {UnitMgmtComponent, UnitFormComponent} from './equip-main-data-mgmt/components/unit-mgmt'; // 设备管理-主设备数据管理-单位管理
import {AttrTypeMgmtComponent, AttrTypeFormComponent} from './equip-main-data-mgmt/components/attr-type-mgmt'; // 设备管理-主设备数据管理-属性类型管理
import {AttrDefMgmtComponent, AttrDefFormComponent} from './equip-main-data-mgmt/components/attr-def-mgmt'; // 设备管理-主设备数据管理-属性定义管理
import {AttrDefCategoryMgmtComponent, AttrDefCategoryFormComponent} from
    './equip-main-data-mgmt/components/attr-def-category-mgmt'; // 设备管理-主设备数据管理-属性定义分类管理
import {DeviceInstanceMgmtComponent} from './equip-main-data-mgmt/components/device-instance-mgmt'; // 设备管理-主设备数据管理-设备实例管理
import {DeviceDefCategoryMgmtComponent, DeviceDefCategoryFormComponent} from
    './equip-main-data-mgmt/components/device-def-category-mgmt'; // 设备管理-主设备数据管理-设备定义分类管理

import {DeviceDefMgmtComponent, DeviceDefFormComponent} from './equip-main-data-mgmt/components/device-def-mgmt';

import {RecordComponent} from '../app/inspection/components/record/record.component';  // 巡检管理-记录
import {SubstationDetailsComponent} from '../app/components/substation-details/substation-details.component';
import {RecordListComponent} from '../app/inspection/components/record/components/record-list/record-list.component';
import {AbnormalListComponent} from '../app/inspection/components/record/components/abnormal-list/abnormal-list.component';
import {AbnormalChartComponent} from '../app/inspection/components/record/components/abnormal-chart/abnormal-chart.component';
import {AbnormalRecordComponent} from '../app/inspection/components/record/components/abnormal-record/abnormal-record.component';
import {ConsistencyListComponent} from '../app/inspection/components/record/components/consistency-list/consistency-list.component';
import {SearchRecordListComponent} from '../app/inspection/components/record/components/search-record-list/search-record-list.component';
import {ProductionReviewComponent} from '../app/inspection/components/production-review/production-review.component';
import { DataAnalysisComponent } from './data-analysis/data-analysis.component';

import { NetworkStatusComponent } from './chart-detection/network-status/index'; // 图表检测/网络监控图

registerLocaleData(zh);

@NgModule({
  declarations: [
    SubstationDetailsComponent, RecordComponent, RecordListComponent, AbnormalListComponent, AbnormalChartComponent,
    AbnormalRecordComponent, ConsistencyListComponent, SearchRecordListComponent, ProductionReviewComponent,
    AppComponent, SideMenuComponent, OverviewComponent, EquipMgmtComponent, LeftComponent, CenterComponent,
    RightComponent, BaseInfoComponent, UtilizationComponent, SoftwareVersionComponent, StateEvaluationComponent,
    LoadRateComponent, MaintenanceRecordComponent, DefectRecerodComponent, DataHandlingComponent,
    InspectionComponent, SubstationComponent, InspectionIndexPieComponent, InspectionIndexCCTVComponent,
    InspectionMgmtComponent, FaultDetailComponent, PowerDetailComponent, OneKeyConfigComponent, DataMgmtComponent,
    DataDictionaryComponent, SystemParamMgmtComponent, FaultCodeMgmtComponent, LineMgmtComponent, SiteMgmtComponent,
    LogMgmtComponent, EquipMainDataMgmtComponent, UnitMgmtComponent, AttrTypeMgmtComponent, AttrDefMgmtComponent,
    AttrDefCategoryMgmtComponent, DeviceInstanceMgmtComponent, UnitFormComponent, AttrTypeFormComponent,
    AttrDefCategoryFormComponent, AttrDefFormComponent, DeviceDefCategoryMgmtComponent, DeviceDefCategoryFormComponent,
    DeviceDefMgmtComponent, DeviceDefFormComponent, DataDictionaryItemComponent, DataAnalysisComponent, NetworkStatusComponent
  ],
  imports: [
    BrowserModule, AppRoutingModule, FormsModule, HttpClientModule, BrowserAnimationsModule, NzButtonModule,
    NzLayoutModule, NzPopconfirmModule, NzTimePickerModule, NzInputModule, NzModalModule, NzFormModule, NzIconModule,
    NzTabsModule, NzMenuModule, NzRadioModule, NzSelectModule, NzDatePickerModule, NzStepsModule, NzTreeModule,
    NzTableModule, NzInputNumberModule, ReactiveFormsModule, NzUploadModule, NzCascaderModule,
    NgxEchartsModule.forRoot({echarts: () => import('echarts')})
  ],
  providers: [{provide: NZ_I18N, useValue: zh_CN}],
  bootstrap: [AppComponent]
})
export class AppModule {
}
